Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: add support for embedded cluster updates #4201

Conversation

ricardomaraschini
Copy link
Contributor

@ricardomaraschini ricardomaraschini commented Dec 4, 2023

What this PR does / why we need it:

We now support Embedded Cluster upgrades as part of a with the KOTS application upgrade. Users are able to provide their own Embedded Cluster Config object that is then applied to the cluster when it differs from the current active configuration.

Special notes for your reviewer:

Most of the work here has been leveraged in collaboration with Craig, I believe he has enough context on everything here. All that has been implemented here is supposed to be a no-op when running on top of another type of cluster (for instance, kURL). If you can pay special attention to this detail during the review that would be great.

Does this PR introduce a user-facing change?

Adds support for Embedded Cluster upgrades as part of a KOTS application upgrade.

Does this PR require documentation?

Most likely we need to document the new "Cluster State" that is presented on the main screen:

Screenshot 2023-12-06 at 21 49 28

@ricardomaraschini ricardomaraschini force-pushed the ricardomaraschini/sc-93834/productize-autopilot-upgrades branch 5 times, most recently from d7c0bb4 to 76f1c5a Compare December 6, 2023 20:52
@ricardomaraschini ricardomaraschini added the type::feature New feature or request label Dec 6, 2023
@ricardomaraschini ricardomaraschini force-pushed the ricardomaraschini/sc-93834/productize-autopilot-upgrades branch 3 times, most recently from 9ec8de6 to 2a48633 Compare December 7, 2023 11:23
we now support embedded cluster upgrades together with the kots app
upgrade. users can provide their own embedded cluster config object
that is then applied to the cluster when it differs from the current
active one.
@ricardomaraschini ricardomaraschini force-pushed the ricardomaraschini/sc-93834/productize-autopilot-upgrades branch from 2a48633 to 319508e Compare December 7, 2023 11:25
@ricardomaraschini ricardomaraschini marked this pull request as ready for review December 7, 2023 11:27
if err != nil {
return false, err
}
return !bytes.Equal(serializedCur, serializedNew), nil
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

would this allow a downgrade of the k8s cluster since it's just an equality comparison?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

it would allow applying a spec that requested that, but k0s will refuse

pkg/operator/operator.go Outdated Show resolved Hide resolved
cbodonnell
cbodonnell previously approved these changes Dec 7, 2023
@ricardomaraschini ricardomaraschini merged commit 8452ca5 into main Dec 8, 2023
164 checks passed
@ricardomaraschini ricardomaraschini deleted the ricardomaraschini/sc-93834/productize-autopilot-upgrades branch December 8, 2023 10:01
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
type::feature New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants